//package com.atguigu.gateway.handle;
//
//import org.springframework.boot.autoconfigure.web.ErrorProperties;
//import org.springframework.boot.autoconfigure.web.ResourceProperties;
//import org.springframework.boot.autoconfigure.web.reactive.error.DefaultErrorWebExceptionHandler;
//import org.springframework.boot.web.reactive.error.ErrorAttributes;
//import org.springframework.context.ApplicationContext;
//import org.springframework.http.HttpStatus;
//import org.springframework.web.reactive.function.server.*;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 自定义异常处理
// *
// * <p>异常时用JSON代替HTML异常信息<p>
// *
// */
//public class JsonExceptionHandler extends DefaultErrorWebExceptionHandler {
//
//    public JsonExceptionHandler(ErrorAttributes errorAttributes, ResourceProperties resourceProperties,
//                                ErrorProperties errorProperties, ApplicationContext applicationContext) {
//        super(errorAttributes, resourceProperties, errorProperties, applicationContext);
//    }
//
//    /**
//     * 获取异常属性
//     */
//    @Override
//    protected Map<String, Object> getErrorAttributes(ServerRequest request, boolean includeStackTrace) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("success", false);
//        map.put("code", 20005);
//        map.put("message", "网关失败");
//        map.put("data", null);
//        return map;
//    }
//
//    /**
//     * 指定响应处理方法为JSON处理的方法
//     * @param errorAttributes
//     */
//    @Override
//    protected RouterFunction<ServerResponse> getRoutingFunction(ErrorAttributes errorAttributes) {
//        return RouterFunctions.route(RequestPredicates.all(), this::renderErrorResponse);
//    }
//
//    /**
//     * 根据code获取对应的HttpStatus
//     * @param errorAttributes
//     */
//    @Override
//    protected HttpStatus getHttpStatus(Map<String, Object> errorAttributes) {
//        return HttpStatus.OK;
//    }
//}